﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cofe.Core.Property
{
    public interface IPropertyCacheDictionary
    {
        void CacheProperty(PropertyPair ppair);
        void SetProperty(PropertyPair ppair);
        PropertyPair GetProperty(object property);
        void ClearDictionary(bool clearChanged, bool clearCache, Func<object, bool> filter = null);
        IEnumerable<object> GetChangedProperties();
        IEnumerable<object> GetCachedProperties();
        IEnumerable<object> GetSupportedProperties();
        IPropertyDefinitions[] GetSupportedDefinitions(IEnumerable<object> additionalProperties = null);
        IEnumerable<object> GetPropertiesInDic();




    }
}
